package com.ruoyi.platform.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.web.domain.BaseEntity;

/**
 * 发票详情对象 t_invoice_detail
 * 
 * @author ruoyi
 * @date 2025-08-20
 */
public class TInvoiceDetail extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 发票详情ID */
    private Long detailId;

    /** 发票ID */
    private Long invoiceId;

    /** 驳回原因 */
    @Excel(name = "驳回原因")
    private String rejectReason;

    /** 发票状态 */
    @Excel(name = "发票状态")
    private Integer invoiceStatus;

    /** 发票抬头 */
    @Excel(name = "发票抬头")
    private String invoiceTitle;

    /** 纳税人识别号 */
    @Excel(name = "纳税人识别号")
    private String taxpayerId;

    /** 发票类型 */
    @Excel(name = "发票类型")
    private Long invoiceType;

    /** 发票内容 */
    @Excel(name = "发票内容")
    private String invoiceContent;

    /** 注册地址和电话 */
    @Excel(name = "注册地址和电话")
    private String registerAddressPhone;

    /** 开户行和账号 */
    @Excel(name = "开户行和账号")
    private String bankAccount;

    /** 收件人 */
    @Excel(name = "收件人")
    private String recipient;

    /** 收件人电话 */
    @Excel(name = "收件人电话")
    private String recipientPhone;

    /** 收件人地址 */
    @Excel(name = "收件人地址")
    private String recipientAddress;

    /** 行程单接收邮箱 */
    @Excel(name = "行程单接收邮箱")
    private String travelReceiptEmail;

    /** 申请日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "申请日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date applyDate;

    /** 行程开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "行程开始时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date travelTimeStart;

    /** 行程结束时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "行程结束时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date travelTimeEnd;

    /** 行程人手机号 */
    @Excel(name = "行程人手机号")
    private String travelPhone;

    /** 合计金额 */
    @Excel(name = "合计金额")
    private BigDecimal totalAmount;

    public void setDetailId(Long detailId) 
    {
        this.detailId = detailId;
    }

    public Long getDetailId() 
    {
        return detailId;
    }

    public void setInvoiceId(Long invoiceId) 
    {
        this.invoiceId = invoiceId;
    }

    public Long getInvoiceId() 
    {
        return invoiceId;
    }

    public void setRejectReason(String rejectReason) 
    {
        this.rejectReason = rejectReason;
    }

    public String getRejectReason() 
    {
        return rejectReason;
    }

    public void setInvoiceStatus(Integer invoiceStatus) 
    {
        this.invoiceStatus = invoiceStatus;
    }

    public Integer getInvoiceStatus() 
    {
        return invoiceStatus;
    }

    public void setInvoiceTitle(String invoiceTitle) 
    {
        this.invoiceTitle = invoiceTitle;
    }

    public String getInvoiceTitle() 
    {
        return invoiceTitle;
    }

    public void setTaxpayerId(String taxpayerId) 
    {
        this.taxpayerId = taxpayerId;
    }

    public String getTaxpayerId() 
    {
        return taxpayerId;
    }

    public void setInvoiceType(Long invoiceType) 
    {
        this.invoiceType = invoiceType;
    }

    public Long getInvoiceType() 
    {
        return invoiceType;
    }

    public void setInvoiceContent(String invoiceContent) 
    {
        this.invoiceContent = invoiceContent;
    }

    public String getInvoiceContent() 
    {
        return invoiceContent;
    }

    public void setRegisterAddressPhone(String registerAddressPhone) 
    {
        this.registerAddressPhone = registerAddressPhone;
    }

    public String getRegisterAddressPhone() 
    {
        return registerAddressPhone;
    }

    public void setBankAccount(String bankAccount) 
    {
        this.bankAccount = bankAccount;
    }

    public String getBankAccount() 
    {
        return bankAccount;
    }

    public void setRecipient(String recipient) 
    {
        this.recipient = recipient;
    }

    public String getRecipient() 
    {
        return recipient;
    }

    public void setRecipientPhone(String recipientPhone) 
    {
        this.recipientPhone = recipientPhone;
    }

    public String getRecipientPhone() 
    {
        return recipientPhone;
    }

    public void setRecipientAddress(String recipientAddress) 
    {
        this.recipientAddress = recipientAddress;
    }

    public String getRecipientAddress() 
    {
        return recipientAddress;
    }

    public void setTravelReceiptEmail(String travelReceiptEmail) 
    {
        this.travelReceiptEmail = travelReceiptEmail;
    }

    public String getTravelReceiptEmail() 
    {
        return travelReceiptEmail;
    }

    public void setApplyDate(Date applyDate) 
    {
        this.applyDate = applyDate;
    }

    public Date getApplyDate() 
    {
        return applyDate;
    }

    public void setTravelTimeStart(Date travelTimeStart) 
    {
        this.travelTimeStart = travelTimeStart;
    }

    public Date getTravelTimeStart() 
    {
        return travelTimeStart;
    }

    public void setTravelTimeEnd(Date travelTimeEnd) 
    {
        this.travelTimeEnd = travelTimeEnd;
    }

    public Date getTravelTimeEnd() 
    {
        return travelTimeEnd;
    }

    public void setTravelPhone(String travelPhone) 
    {
        this.travelPhone = travelPhone;
    }

    public String getTravelPhone() 
    {
        return travelPhone;
    }

    public void setTotalAmount(BigDecimal totalAmount) 
    {
        this.totalAmount = totalAmount;
    }

    public BigDecimal getTotalAmount() 
    {
        return totalAmount;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("detailId", getDetailId())
            .append("invoiceId", getInvoiceId())
            .append("rejectReason", getRejectReason())
            .append("invoiceStatus", getInvoiceStatus())
            .append("invoiceTitle", getInvoiceTitle())
            .append("taxpayerId", getTaxpayerId())
            .append("invoiceType", getInvoiceType())
            .append("invoiceContent", getInvoiceContent())
            .append("registerAddressPhone", getRegisterAddressPhone())
            .append("bankAccount", getBankAccount())
            .append("recipient", getRecipient())
            .append("recipientPhone", getRecipientPhone())
            .append("recipientAddress", getRecipientAddress())
            .append("travelReceiptEmail", getTravelReceiptEmail())
            .append("applyDate", getApplyDate())
            .append("travelTimeStart", getTravelTimeStart())
            .append("travelTimeEnd", getTravelTimeEnd())
            .append("travelPhone", getTravelPhone())
            .append("totalAmount", getTotalAmount())
            .toString();
    }
}
